home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 388_01 / ae / 93 / jul / header.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-12  |  7.4 KB  |  300 lines

  1. /*
  2.  * header.h        
  3.  *
  4.  * Anthony's Editor July 93
  5.  *
  6.  * Copyright 1993, 1993 by Anthony Howe.  All rights reserved.  No warranty.
  7.  */
  8.  
  9. #ifndef __header_h__
  10. #define __header_h__    1
  11.  
  12. #ifdef __STDC__
  13. #include <stdlib.h>
  14. #include <stdarg.h>
  15. #include <string.h>
  16. #include <signal.h>
  17. #endif /* __STDC__ */
  18.  
  19. #ifdef ATARI_ST
  20. /* Atari's Sozobon C has ANSI-like libraries 
  21.  * and headers but no prototypes. 
  22.  */
  23. #include <stdlib.h>
  24. #include <stdarg.h>
  25. #include <string.h>
  26. #include <sys\osbind.h>
  27.  
  28. #define    DRIVE_COLON    1
  29. #define EITHER_SLASH    1
  30.  
  31. #ifndef FILE_MODE
  32. #define FILE_MODE    0
  33. #endif
  34. #endif /* ATARI_ST */
  35.  
  36.  
  37. #ifdef __WATCOMC__
  38.  
  39. #ifdef MSDOS
  40.  
  41. #define __MSDOS__    1
  42.  
  43. #endif
  44.  
  45. #endif /* __WATCOMC__ */
  46.  
  47. #ifdef __MSDOS__
  48. #define DRIVE_COLON    1
  49. #define EITHER_SLASH    1
  50.  
  51. #ifndef FILE_MODE
  52. #define FILE_MODE    0
  53. #endif
  54. #endif /* __MSDOS__ */
  55.  
  56. #ifdef BSD
  57. #ifndef __STDC__
  58. #include <signal.h>
  59. #include <varargs.h>
  60. #include <strings.h>
  61. extern char *getenv();
  62. extern char *malloc();
  63. extern char *realloc();
  64. extern char *strtok();
  65. #endif /* __STDC__ */
  66. #endif /* BSD */
  67.  
  68. #ifndef SIG_ERR
  69. #define    SIG_ERR        ((void (*) _((int))) -1)
  70. #endif
  71.  
  72. #include <assert.h>
  73. #include <curses.h>
  74. #include "key.h"
  75.  
  76. #ifdef BADCURSES
  77. #define erasechar()    '\b'
  78. #define killchar()    CTRL('x')
  79. #define idlok(w,f)    OK
  80. #endif /* BADCURSES */
  81.  
  82. #undef _
  83. #ifdef __STDC__
  84. #define _(x)        x
  85. #else
  86. #define _(x)        ()
  87. #define const
  88. #endif
  89.  
  90. #define VERSION        \
  91. "0:AE July 93.  Copyright 1993, 1993 by Anthony Howe.  No warranty."
  92.  
  93. #ifndef CONFIG
  94. #define CONFIG        "ae.rc"
  95. #endif /* CONFIG */
  96.  
  97. #ifndef CHUNK
  98. #define CHUNK        8096L
  99. #endif /* CHUNK */
  100.  
  101. #ifndef FILE_MODE
  102. #define FILE_MODE    0600
  103. #endif /* FILE_MODE */
  104.  
  105. /* Screen partitioning. */
  106. #define MSGLINE        0
  107. #define HELPLINE    1
  108. #undef  TEXTLINE    
  109.  
  110. #define NOMARK        -1
  111.  
  112. typedef long SSIZE_T;            /* ssize_t not defined all systems. */
  113. typedef char *t_msg;
  114. typedef unsigned char t_char;
  115. typedef long t_point;
  116.  
  117. typedef struct t_keytable {
  118.     short key;
  119.     void (*func) _((void));
  120.     void (*disp) _((void));
  121. } t_keytable;
  122.  
  123. typedef struct t_region {
  124.     t_point left;
  125.     t_point right;
  126. } t_region;
  127.  
  128. /*
  129.  * Function return codes.
  130.  */
  131. #define GETBLOCK_EOF        (-1L)
  132. #define GETBLOCK_ERROR        (-2L)
  133. #define GETBLOCK_ALLOC        (-3L)
  134.  
  135. /*
  136.  * Some compilers define size_t as a unsigned 16 bit number while 
  137.  * t_point and off_t might be defined as a signed 32 bit number.  
  138.  * malloc(), realloc(), fread(), and fwrite() take size_t parameters,
  139.  * which means there will be some size limits because size_t is too
  140.  * small of a type.
  141.  */
  142. #define MAX_SIZE_T    ((unsigned long) (size_t) ~0)
  143. #define MAX_SSIZE_T    ((unsigned long) (SSIZE_T) ~(size_t) 0 >> 1)
  144.  
  145. /*
  146.  *
  147.  */
  148. extern int done;        /* Quit flag. */
  149. extern int modified;        /* Text buffer modified flag. */
  150. extern int modeless;        /* Command-set style. */
  151. extern int msgflag;        /* True if msgline should be displayed. */
  152.  
  153. extern int row;            /* Cursor screen row */
  154. extern int col;            /* Cursor screen column. */
  155. extern int textline;        /* First screen line used for text. */
  156.  
  157. extern t_point point;        /* Cursor offset in text buffer. */
  158. extern t_point pointline;    /* Cursor line number. */
  159. extern t_point page;        /* Top of screen page. */
  160. extern t_point epage;        /* End of screen page +1 */
  161. extern t_point marker;        /* Block anchor point. */
  162.  
  163. extern t_char *buf;        /* Base of allocated text buffer. */
  164. extern t_char *ebuf;        /* End of text buffer +1 */
  165. extern t_char *gap;        /* Start of gap. */
  166. extern t_char *egap;        /* End of gap +1 */
  167.  
  168. extern t_point nscrap;        /* Length of scrap buffer. */
  169. extern t_char *scrap;        /* Allocated scrap buffer. */
  170.  
  171. extern int count;        /* Command repeat count. */
  172. extern int input;        /* Current input character. */
  173. extern char msgline[];        /* Message line input/output buffer. */
  174. extern char filename[];        /* Current filename for text buffer. */
  175. extern char temp[];        /* Temporary buffer. */
  176. extern char *prog_name;        /* Name used to invoke editor. */
  177.  
  178. extern t_keytable table[];    /* Command jump table. */
  179. extern t_keymap *key_map;    /* Command key mappings. */
  180. extern t_keymap key_mode[];    /* Key mappings used in insert_mode() */
  181.  
  182. /* fatal() messages. */
  183. extern t_msg f_ok;        /* EXIT_OK */
  184. extern t_msg f_error;        /* EXIT_ERROR */
  185. extern t_msg f_usage;        /* EXIT_USAGE */
  186. extern t_msg f_initscr;        /* EXIT_FAILURE ... */
  187. extern t_msg f_config;
  188. extern t_msg f_alloc;
  189.  
  190. /* Messages. */
  191. extern t_msg m_version;
  192. extern t_msg m_help;
  193. extern t_msg m_ok;
  194. extern t_msg m_error;
  195. extern t_msg m_alloc;
  196. extern t_msg m_toobig;
  197. extern t_msg m_scrap;
  198. extern t_msg m_stat;
  199. extern t_msg m_open;
  200. extern t_msg m_close;
  201. extern t_msg m_read;
  202. extern t_msg m_write;
  203. extern t_msg m_badname;
  204. extern t_msg m_file;
  205. extern t_msg m_modified;
  206. extern t_msg m_saved;
  207. extern t_msg m_loaded;
  208. extern t_msg m_badescape;
  209. extern t_msg m_nomacro;
  210. extern t_msg m_slots;
  211. extern t_msg m_interrupt;
  212. extern t_msg m_eof;
  213. extern t_msg m_undo;
  214.  
  215. /* Prompts */
  216. extern t_msg p_macro;
  217. extern t_msg p_notsaved;
  218. extern t_msg p_press;
  219. extern t_msg p_read;
  220. extern t_msg p_write;
  221. extern t_msg p_bwrite;
  222. extern t_msg p_yes;
  223. extern t_msg p_no;
  224. extern t_msg p_quit;
  225. extern t_msg p_more;
  226.  
  227. extern t_msg message[];
  228.  
  229. /*
  230.  *
  231.  */
  232. #ifdef TERMIOS
  233. extern void lineinput _((int));
  234. #else
  235. #define lineinput(bf)        (bf ? nocbreak() : cbreak())
  236. #endif /* TERMIOS */
  237.  
  238. extern void fatal _((t_msg));
  239. extern void msg _((t_msg, ...));
  240. extern char *getmsg _((t_msg));
  241. extern char *strlwr _((char *));
  242. extern char *strdup _((const char *));
  243. extern char *strrep _((char *, int, int, int));
  244. extern char *pathname _((char *, char *));
  245. extern FILE *openrc _((char *));
  246. extern long getblock _((FILE *, char **));
  247. extern long encode _((char *));
  248.  
  249. extern void display _((void (*)(void)));
  250. extern void dispfull _((void));
  251. extern void dispcursor _((void));
  252. extern t_point lnstart _((t_point));
  253. extern t_point lnnext _((t_point));
  254. extern t_point lncolumn _((t_point, int));
  255. extern t_point segstart _((t_point, t_point));
  256. extern t_point segnext _((t_point, t_point));
  257. extern t_point upup _((t_point));
  258. extern t_point dndn _((t_point));
  259. extern void ruler _((int));
  260. extern char *printable _((unsigned));
  261.  
  262. extern int growgap _((t_point));
  263. extern t_point movegap _((t_point));
  264. extern t_point pos _((t_char *));
  265. extern t_char *ptr _((t_point));
  266. extern void getregion _((t_region *));
  267. extern int posix_file _((char *));
  268. extern int save _((char *));
  269. extern int load _((char *));
  270. extern void undoset _((void));
  271. extern void undosave _((void));
  272. extern void undo _((void));
  273.  
  274. extern void backsp _((void));
  275. extern void block _((void));
  276. extern void bottom _((void));
  277. extern void cut _((void));
  278. extern void delete _((void));
  279. extern void down _((void));
  280. extern void help _((void));
  281. extern void insert _((void));
  282. extern void insert_mode _((void));
  283. extern void left _((void));
  284. extern void lnbegin _((void));
  285. extern void lnend _((void));
  286. extern void macro _((void));
  287. extern void paste _((void));
  288. extern void pgdown _((void));
  289. extern void pgup _((void));
  290. extern void quit _((void));
  291. extern void quit_ask _((void));
  292. extern void redraw _((void));
  293. extern void readfile _((void));
  294. extern void right _((void));
  295. extern void top _((void));
  296. extern void up _((void));
  297. extern void version _((void));
  298. extern void wleft _((void));
  299. extern void wright _((void));
  300. extern void writefile _((void));
  301. extern void flipcase _((void));
  302. extern int iscrlf _((t_point));
  303.  
  304. #endif /* __header_h__ */
  305.